/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package network.packets;

import datamodel.Order;
import java.util.Vector;
import utils.Utils;

/**
 *
 * @author Kvest
 */
public class GetOrdersResponse extends Packet
{
    private Vector orders;
    
    public GetOrdersResponse(byte[] data)
    {
        super(GET_ORDERS_RESPONCE);
        orders = new Vector();
        
        parse(data);
    }
    
    protected void parse(byte[] data)
    {
        int offset = 0;
        
        //Пропускаем название пакета
        byte[] buffer4 = new byte[4];
        System.arraycopy(data, offset, buffer4, 0, buffer4.length);
        offset += buffer4.length + Utils.byteToInt(buffer4);
        
        //Если произошла ошибка - ничего не делаем
        if (data[offset++] == 1)
        {
            return;
        }
        
        //Находим количество заказов
        System.arraycopy(data, offset, buffer4, 0, buffer4.length);
        offset += buffer4.length;
        int ordersCount = Utils.byteToInt(buffer4);
      
        OrderResponce4 tmp;
        int dataSize;
        //Перебераем все заказы
        for (int i = 0 ; i < ordersCount; ++i)
        {
            System.arraycopy(data, offset, buffer4, 0, buffer4.length);
            offset += buffer4.length;
            dataSize = Utils.byteToInt(buffer4);

            tmp = new OrderResponce4(OrderResponce4.ORDER_RESPONCE4);
            tmp.createOrder();
            tmp.parse(data, offset);
            offset += dataSize;

            orders.addElement(tmp.getOrder());
        }
        
        buffer4 = null;
        tmp = null;
    }
    
    public int count()
    {
        return orders.size();
    }

    public Order getOrder(int index)
    {
        return (Order)orders.elementAt(index);
    }
}
